package com.sunny.design.prototype;

import com.sunny.design.prototype.shallow.ShallowPrototype;

/**
 * 原型模式（Prototype Pattern）是指原型实例指定创建对象的种类，并且通过拷贝这些原型创建新的对象。
 *
 * 适用场景：
 *  1、类初始化消耗资源较多。
 *  2、new 产生的一个对象需要非常繁琐的过程（数据准备、访问权限等）
 *  3、构造函数比较复杂。
 *  4、循环体中生产大量对象时。
 *
 * 优点：
 *  原型模式性能比直接new一个对象性能高，简化了创建过程
 *
 * 缺点：
 *  必须配备克隆（或者可拷贝）方法对克隆复杂对象或对克隆出的对象进行复杂改造时，易带来风险。深拷贝、浅拷贝要运用得当
 *
 * @author Sunny
 * @date 2019/12/31 16:26
 */
public interface Prototype {

    ShallowPrototype clone();
}
